Controls

Controls are graphical objects that users manipulate with the keyboard and mouse to give instructions to an application.  They're patterned after familiar control devices from everyday life-switches, knobs, forms, gauges, and the like-and perform analogous functions.  Like the dials and levers on a machine, graphical control objects let the user ªoperateº an application.

Every control responds visually to direct manipulation by the user-a dial turns, a button pushes in or highlights, the knob of a slider slides.  Controls go beyond this direct response, however, to cause the application to do something.  They, in effect, translate the user's direct manipulation into an instruction for the application.  A button sets a state or initiates a program action, a slider sets a value, a menu item sends a command, and so on.

The Application Kit defines five canonical controls:

·	Sliders 
·	Buttons 
·	Menu commands 
·	Text fields 
·	Scrollers

You can also design your own controls-the Application Kit makes this relatively easy-but they should adhere to these basic design principles:

·	Every control must provide immediate feedback to let the user know that an action has ªtaken.º  Just as users can look at a dial on a stove to see whether it has been turned, a graphical control must alter its appearance in response to user actions.  It shouldn't depend on a reaction elsewhere in the application to give the user feedback.

·	Every control should have a distinctive appearance and behavior.  Don't design controls that look so similar to the canonical controls that users will confuse one with the other.

·	The behavior of a control should be apparent from its appearance.  After a bit of familiarity with the NeXT Computer, users should be able to easily recognize a control object and know almost instinctively how to operate it.